package zack.project.domain.activity.service.quota.policy;

import zack.project.domain.activity.model.aggregate.CreateQuotaOrderAggregate;

/**
 * @author A1793
 */
public interface ITradePolicy {
   /**
    * 交易策略，分为积分支付和行为返利的无支付交易
    * 积分支付:只保存一份状态为"wait_type"的活动参与单(对应数据库表{raffle_activity_order})
    * 无积分支付:保存一份状态为"completely"的活动参与单并更改对应的用户活动账户(对应数据库表{raffle_activity_account},{raffle_activity_account_month},{raffle_activity_account_day})
    * @param createQuotaOrderAggregate
    */
   void trade(CreateQuotaOrderAggregate createQuotaOrderAggregate);

}
